package cn.bonoon.kernel.annotations;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import cn.bonoon.kernel.support.CodeGenerator;

/**
 * 自动生成条码，如果是自动生成条码，则该字段是不允许修改的
 * @author jackson
 *
 */
@Target(FIELD)
@Retention(RUNTIME)
public @interface CodeBuilder {
	CodeType type() default CodeType.MONTH;
	/**
	 * 用于识别该类编码的识别串，如果两个不同实体的识别串相同，则编码可以进行累加计算
	 * @return
	 */
	String value() default "";
	/**
	 * 编码的长度
	 * @return
	 */
	int len() default CodeGenerator.DEFAULT_LENGTH;
	/**
	 * 进行转值或生成界面的时候，如果该字段没有值，则自动显示这个内容
	 * @return
	 */
	String name() default "自动生成条码";
	
	/**
	 * 该编码的前缀
	 * @return
	 */
	String prefix()default "";
}
